package com.blog.util;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.DigestUtils;
import javax.annotation.PostConstruct;
import java.nio.charset.StandardCharsets;


public class MD5Utils {

    @Value("${project.salt}")
    private String salt;

    private static String thisSalt;

    //使用了 @PostConstruct 注解的方法，它会在类被实例化后立即执行。
    @PostConstruct
    private void setThisSalt() {
        thisSalt = salt;
    }

    //接受一个字符串 str，将其与 thisSalt 拼接，
    // 然后使用 Spring 框架提供的 DigestUtils 类中的 md5DigestAsHex 方法对拼接后的字符串进行 MD5 散列，
    // 并以十六进制字符串的形式返回结果。
    public static String digest(String str) {
        return DigestUtils.md5DigestAsHex((str + thisSalt).getBytes(StandardCharsets.UTF_8));
    }
}